// pages/course/course.js
const app = getApp();// 云：add this before every page //
const HTTP = require('../../utils/http');
const API = require('../../utils/api');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    safeHeight: app.globalData.tabBarHeight + app.globalData.safeBottom, // 云：add this before every page //
    safeTop: app.globalData.safeTop,
    activeTab: 0,
    activeKey:0,
    findNum:5,
    postNum:3,
    show:0,
    bannerList: ['https://img2.baidu.com/it/u=1582059,2263383535&fm=253&fmt=auto&app=138&f=JPEG?w=650&h=365', 'https://img0.baidu.com/it/u=3294666265,4181907410&fm=253&fmt=auto&app=138&f=JPEG?w=650&h=400'],
    scrollList:[1, 2, 3, 4, 5, 6],

    courseCollectionHotBackgoundList: app.globalData.courseCollectionHotBackgoundList,
    coursetitle:['生活常用','运动健康','休闲娱乐','交友聊天','出门服务','一键办事','消费购物'],

    courseCollectionHot:[],
    appCourse:[],
    historyStudyCourse:[],
    historyStudyCourseC:[],
    courseList:[],
    courseListShow:[]
  },

   // 跳转到App页面
   jumpAppPage(event){
    console.log("点击跳转APP页面, 相关app信息是：", event.currentTarget.dataset)

    if(wx.getStorageSync('accessTokenData').accessToken){
        // wx.showToast({
        //   title: '暂无内容',
        //   icon: "error"
        // })
        // id可以作为参数
        wx.navigateTo({
          url: `/pages/colls/index?appInfo=`+JSON.stringify(event.currentTarget.dataset),
      })
    }
    else{
        wx.showToast({
          title: '请前往“我的”授权登录！',
          icon: "none",
          duration: 2000
        })
    }  
  },

  onChangeTab(event) {
    this.setData({
      activeTab: event.detail.name
    })
  },

  onChange(event){
    console.log("进入的课程列表是：",event.detail)
    this.setData({
      show: event.detail
    })
    if(event.detail>1){
      this.setData({
        courseListShow: this.data.courseList.filter(item=>{
          if(item.keywords){
            if(item.keywords.includes(this.data.coursetitle[event.detail-2])){
              return true
            }
            else{
              return false
            }
          }
          else{
            return true
          }
        })
      })
    }
    else{
      this.setData({
        show: event.detail
      })
    }
  },

  // 获取所有课程
  getCourseList(){
    wx.request({
      url: API.COURSEList,
      header:{
        "Authorization": 'Bearer ' + wx.getStorageSync('accessTokenData').accessToken
      },
      method: "get",
      success: (res) => {
        console.log("获取课程列表成功：",res)
        this.setData({
          courseList: res.data.data,
        })
        if(this.data.activeKey>1){
          this.setData({
            courseListShow: res.data.data.filter(item=>{
              if(item.keywords){
                if(item.keywords.includes(this.data.coursetitle[this.data.activeKey-2])){
                  return true
                }
                else{
                  return false
                }
              }
              else{
                return true
              }
            })
          })
        }       
      },
      fail: (err) => {
        console.log("获取课程列表出错：",err);
      },
      complete:()=>{
      }
    })
  },

  activeTabGet(){
    if(app.globalData.switchTabFalg){
      console.log('进入课程页面，需要自动切换Tab或者Tab下面的key：', app.globalData.history)
      console.log('进入课程页面，activeTab是：', app.globalData.history)
      console.log('进入课程页面，课程列表的activeKey是：', app.globalData.activeCourseList)

      this.onChange({detail: app.globalData.activeCourseList})
      this.setData({
        activeTab: app.globalData.history,
      })
      this.setData({
        activeKey: app.globalData.activeCourseList,
        show: app.globalData.activeCourseList
      })
      app.globalData.history = 0
      app.globalData.activeCourseList = 0
      app.globalData.switchTabFalg = 0
    }
    
  },

  initCourse(){
    let accessToken = wx.getStorageSync('accessTokenData').accessToken
    if(accessToken){
      // 用户历史学习课程获取
      wx.request({
        url: API.getUserHistoryCourse,
        header:{
          "Authorization": 'Bearer '+accessToken
        },
        // data:{nickname:res.userInfo.nickName},
        method: "get",
        success: (res) => {
          console.log("获取历史记录成功：",res)
          // 课程进度百分数计算并取整
          for(let i=0;i<res.data.data.length;i++){
            res.data.data[i].percent=parseInt(res.data.data[i].progress*100)
          }
          this.setData({
            historyStudyCourse: res.data.data
          })
          
        },
        fail: (err) => {
          console.log("获取历史记录出错：",err);
        },
        complete:()=>{
          // wx.hideLoading();
        }
      })
      // 用户历史学习合辑获取
      wx.request({
        url: API.getUserHistoryCourseC,
        header:{
          "Authorization": 'Bearer '+accessToken
        },
        method: "get",
        success: (res) => {
          console.log("获取历史合辑记录成功：",res)
          // 课程合辑进度百分数计算并取整
          for(let i=0;i<res.data.data.length;i++){
            res.data.data[i].percent=parseInt(res.data.data[i].courseLearned/res.data.data[i].courseCount*100)
          }
          this.setData({
            historyStudyCourseC: res.data.data
          })
          
        },
        fail: (err) => {
          console.log("获取历史合辑记录出错：",err);
        },
        complete:()=>{
          // wx.hideLoading();
        }
      })

      // 应用程序app获取
      wx.request({
        url: app.globalData.server+'/app-api/epg/app/list',
        header:{
          "Authorization": 'Bearer '+accessToken
        },
        // data:{nickname:res.userInfo.nickName},
        method: "get",
        success: (res) => {
          console.log("获取app课程列表成功：",res)
          this.setData({
            appCourse: res.data.data
          }) 
        },
        fail: (err) => {
          console.log("获取app课程列表失败：",err);
        },
        complete:()=>{
          // wx.hideLoading();
        }
      })


      // 热门合辑获取
      wx.request({
        // url: this.globalData.url + '/login',
        url: app.globalData.server+'/app-api/epg/course_collection/hot',
        header:{
          "Authorization": 'Bearer '+accessToken
        },
        // data:{nickname:res.userInfo.nickName},
        method: "get",
        success: (res) => {
          console.log("获取热门合辑成功：",res)
          let hotCourseC = res.data.data.filter(item=>{
            return item.parentId===0
        })
          this.setData({
            courseCollectionHot: hotCourseC
          })
          console.log("合辑背景是：",this.data.courseCollectionHotBackgoundList)
          
        },
        fail: (err) => {
          console.log("获取热门合辑失败：",err);
        },
        complete:()=>{
          // wx.hideLoading();
        }
      })
    }
    else{
      wx.showToast({
        title: '请前往“我的”授权登录！',
        icon: "none",
        duration: 2000
      })
    }

    this.getCourseList()
  },

  jumpCpllectionPage(event){
    console.log("点击跳转合辑页面, 相关id是：", event.currentTarget.dataset)

    // id可以作为参数
    wx.navigateTo({
      url: `/pages/collection/index?id=${event.currentTarget.dataset.id}`,
    })
  },

  /**
   * 跳转到课程详情页面
   */
  locationToDetail(event) {
    console.log("点击跳转课程详情页面, 相关id是：", event.currentTarget.dataset)
  
    // id可以作为参数
    wx.navigateTo({
      url: `/pages/courseDetail/index?id=${event.currentTarget.dataset.id}`,
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log("课程tab onload")
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    // this.initCourse()
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
        this.getTabBar().setData({
          selected: 1
        })
    }
    console.log("课程tab onshow")
    this.activeTabGet()
    if(!wx.getStorageSync('accessTokenData').accessToken){
        wx.showToast({
            title: '请前往“我的”授权登录！',
            icon: "none",
            duration: 2000
          })
    }
    else{
        if(this.data.courseCollectionHot.length<1){
            this.initCourse()
        }
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})